package 栈和队列;

import java.util.ArrayDeque;
import java.util.Queue;

public class MyStack {
    //用队列实现栈的结构
    Queue<Integer> queue1;
    Queue<Integer> queue2;
    //两个队列模拟实现一个栈
    public MyStack() {
     queue1=new ArrayDeque<>();
     queue2=new ArrayDeque<>();
    }

    public void push(int x) {
     queue2.add(x);
     while (!queue1.isEmpty()){
         queue2.add(queue1.poll());
     }
     //交换
     Queue<Integer> temp=queue1;
     queue1=queue2;
     queue2=temp;
    }

    public int pop() {
      return   queue1.poll();
    }

    public int top() {
       return queue1.peek();
    }

    public boolean empty() {
     return queue1.isEmpty();
    }
}
